#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 10
// 树
// 就是分层次管理，这种方法在管理上具有更高的效率。

// Searching
// 静态查找
// 没有插入和删除操作，只有查找
// 动态查找
// 除了查找，还可能发生插入和删除

// 引子：BinarySearch
typedef int ElementType;
struct LNode
{
    ElementType elem[MAXSIZE];
    int length;
};
typedef struct LNode *List;

int BinarySearch(List Tbl, ElementType k)
{
    int left = 0, right = Tbl->length - 1, mid, Nofound;
    Nofound = -1;

    while (left <= right)
    {
        mid = (left + right) / 2;

        if (k < Tbl->elem[mid])
        {
            right = mid - 1;
        }
        else if (k > Tbl->elem[mid])
        {
            left = mid + 1;
        }
        else
            return mid;
    }

    return Nofound;
}

// 二分查找的启示：树形结构对于查找过程有极大的效率提升
